// API使用示例
import { 
  videoStreamAPI, 
  collectionAPI, 
  telemetryAPI, 
  fileAPI, 
  systemAPI,
  request,
  axios 
} from './index.js';



// 视频流管理示例
export const videoStreamExamples = {
  // 获取所有视频流
  async getVideoStreams() {
    try {
      const result = await videoStreamAPI.getVideoStreams();
      console.log('视频流列表:', result.data);
      return result.data;
    } catch (error) {
      console.error('获取视频流失败:', error);
    }
  },

  // 创建新视频流
  async createVideoStream() {
    try {
      const result = await videoStreamAPI.createVideoStream({
        title: '测试摄像头',
        streamUrl: 'rtsp://192.168.1.100:554/stream',
        status: 'checking',
        remark: '测试摄像头'
      });
      
      if (result.success) {
        console.log('创建视频流成功:', result.data);
        return result.data;
      }
    } catch (error) {
      console.error('创建视频流失败:', error);
    }
  },

  // 更新视频流配置
  async updateVideoStream(id) {
    try {
      const result = await videoStreamAPI.updateVideoStream(id, {
        title: '更新后的摄像头名称',
        status: 'online'
      });
      
      if (result.success) {
        console.log('更新视频流成功');
      }
    } catch (error) {
      console.error('更新视频流失败:', error);
    }
  },


};

// 数据采集示例
export const collectionExamples = {
  // 开始数据采集
  async startCollection() {
    try {
      const result = await collectionAPI.startCollection({
        channels: [
          { id: 1, name: '摄像头1', streamUrl: 'rtsp://192.168.1.100:554/stream' },
          { id: 2, name: '摄像头2', streamUrl: 'rtsp://192.168.1.101:554/stream' }
        ],
        outputDir: './collections/20241201_120000',
        maxDuration: 3600 // 1小时
      });
      
      if (result.success) {
        console.log('开始采集成功:', result.data);
        return result.data;
      }
    } catch (error) {
      console.error('开始采集失败:', error);
    }
  },

  // 停止数据采集
  async stopCollection() {
    try {
      const result = await collectionAPI.stopCollection({
        endTime: new Date().toISOString()
      });
      
      if (result.success) {
        console.log('停止采集成功');
      }
    } catch (error) {
      console.error('停止采集失败:', error);
    }
  },

  // 获取采集状态
  async getCollectionStatus() {
    try {
      const result = await collectionAPI.getCollectionStatus();
      console.log('采集状态:', result.data);
      return result.data;
    } catch (error) {
      console.error('获取采集状态失败:', error);
    }
  }
};

// 遥测数据示例
export const telemetryExamples = {
  // 保存遥测数据
  async saveTelemetryData() {
    try {
      const telemetryData = {
        collectionInfo: {
          timestamp: '20241201_120000',
          startTime: '2024-12-01T12:00:00Z',
          endTime: '2024-12-01T13:00:00Z',
          duration: 3600,
          dataPointCount: 3600
        },
        data: [
          {
            timestamp: '2024-12-01T12:00:01Z',
            temperature: 25.5,
            humidity: 60.2,
            pressure: 1013.25
          }
          // ... 更多数据点
        ]
      };

      const result = await telemetryAPI.saveTelemetryData(telemetryData);
      
      if (result.success) {
        console.log('遥测数据保存成功');
      }
    } catch (error) {
      console.error('保存遥测数据失败:', error);
    }
  },

  // 获取历史遥测数据
  async getHistoricalTelemetry() {
    try {
      const result = await telemetryAPI.getHistoricalTelemetry({
        startTime: '2024-12-01T00:00:00Z',
        endTime: '2024-12-01T23:59:59Z',
        limit: 1000
      });
      
      console.log('历史遥测数据:', result.data);
      return result.data;
    } catch (error) {
      console.error('获取历史遥测数据失败:', error);
    }
  }
};

// 文件管理示例
export const fileExamples = {
  // 上传文件
  async uploadFile(file) {
    try {
      const formData = new FormData();
      formData.append('file', file);
      formData.append('category', 'video');
      formData.append('description', '测试视频文件');

      const result = await fileAPI.uploadFile(formData);
      
      if (result.success) {
        console.log('文件上传成功:', result.data);
        return result.data;
      }
    } catch (error) {
      console.error('文件上传失败:', error);
    }
  },

  // 获取文件列表
  async getFileList() {
    try {
      const result = await fileAPI.getFileList({
        category: 'video',
        page: 1,
        size: 20
      });
      
      console.log('文件列表:', result.data);
      return result.data;
    } catch (error) {
      console.error('获取文件列表失败:', error);
    }
  },

  // 下载文件
  async downloadFile(fileId, filename) {
    try {
      await fileAPI.downloadFile(fileId, filename);
      console.log('文件下载成功');
    } catch (error) {
      console.error('文件下载失败:', error);
    }
  }
};

// 系统管理示例
export const systemExamples = {
  // 获取系统状态
  async getSystemStatus() {
    try {
      const result = await systemAPI.getSystemStatus();
      console.log('系统状态:', result.data);
      return result.data;
    } catch (error) {
      console.error('获取系统状态失败:', error);
    }
  },

  // 获取系统资源使用情况
  async getSystemResources() {
    try {
      const result = await systemAPI.getSystemResources();
      console.log('系统资源:', result.data);
      return result.data;
    } catch (error) {
      console.error('获取系统资源失败:', error);
    }
  },

  // 更新系统配置
  async updateSystemConfig() {
    try {
      const result = await systemAPI.updateSystemConfig({
        maxCollectionDuration: 7200,
        autoSaveInterval: 300,
        storagePath: './data'
      });
      
      if (result.success) {
        console.log('系统配置更新成功');
      }
    } catch (error) {
      console.error('更新系统配置失败:', error);
    }
  }
};

// 通用请求示例
export const requestExamples = {
  // 自定义GET请求
  async customGetRequest() {
    try {
      const result = await request.get('/custom/endpoint', {
        param1: 'value1',
        param2: 'value2'
      });
      
      console.log('自定义GET请求结果:', result);
      return result;
    } catch (error) {
      console.error('自定义GET请求失败:', error);
    }
  },

  // 自定义POST请求
  async customPostRequest() {
    try {
      const result = await request.post('/custom/endpoint', {
        data1: 'value1',
        data2: 'value2'
      });
      
      console.log('自定义POST请求结果:', result);
      return result;
    } catch (error) {
      console.error('自定义POST请求失败:', error);
    }
  }
};

// 导出所有示例
export default {
  videoStream: videoStreamExamples,
  collection: collectionExamples,
  telemetry: telemetryExamples,
  file: fileExamples,
  system: systemExamples,
  request: requestExamples
}; 